Conceito Switch Case


Switch Case: O switch case é uma estrutura de controle de fluxo utilizada em várias linguagens de programação, como C, Java e JavaScript, para facilitar a execução de diferentes blocos de código com base no valor de uma variável. Ele é uma alternativa ao uso de múltiplos if e else if, tornando o código mais legível e organizado.


Imagine um código para converter um número para a sua escrita por extenso:

if (numero == 1) {
   System.out.print("um")
} else if (numero == 2) {
   System.out.print("dois")
} else if (numero == 3) {
   System.out.print("três")
} else if (numero == 4) {
   System.out.print("quatro")
} else if (numero == 5) {
   System.out.print("cinco")
} else if (numero == 6) {
   System.out.print("seis")
} else if (numero == 7) {
   System.out.print("sete")
} else if (numero == 8) {
   System.out.print("oito")
} else if (numero == 9) {
   System.out.print("9")
}

Note que neste código estamos sempre comparando a variável numero com uma igualdade ==

Quando isto ocorre podemos utilizar ao invês da estrutura if else, podemos utilizar o switch case, que nos permite um código que não precisa ficar colocando toda hora numero ==


Código Fluxograma
switch (numero) {    
      case 1:
            System.out.print("um");        
            break;    
      case 2:
            System.out.print("dois");
            break;
      case 3:        
            System.out.print("três");        
            break;    
      case 4:        
            System.out.print("quatro");
            break;    
      case 5:        
            System.out.print("cinco");
            break;  
      case 6:
            System.out.print("seis");
            break;    
      case 7:
            System.out.print("sete");
            break;    
      case 8:
            System.out.print("oito");        
            break;  
      case 9:
            System.out.print("nove");        
            break;    
 }



O Switch Case também pode ter um comportamento igual ao else, ou seja, caso não se encaixe em nenhuma regra de igualdade anterior podemos definir um trecho de código padrão. Para isto utilizamos a palavra default como sendo a última opção.


if (numero == 1) {
            System.out.print("um");
         } else if (numero == 2) {
            System.out.print("dois");
         } else if (numero == 3) {
            System.out.print("três");
         } else if (numero == 4) {
            System.out.print("quatro");
         } else if (numero == 5) {
            System.out.print("cinco");
         } else if (numero == 6) {
            System.out.print("seis");
         } else if (numero == 7) {
            System.out.print("sete");
         } else if (numero == 8) {
            System.out.print("oito");
         } else if (numero == 9) {
            System.out.print("9");
         }

Caso você tenha um trecho de código equivalente a este:

if (numero == 1 || numero == 2) {
      //execute algo
} else if (numero >= 3 && numero <= 6 ) {
      //execute isto
}

Podemos atingir o mesmo resultado utilizando o seguinte código:

switch (numero) {
    case 1:
    case 2:
        // Execute algo
        break;
    case 3:
    case 4:
    case 5:
    case 6:
        // Execute isto
        break;
}

Como não temos nada especificado logo depois do case 1, o comportamento será executar o que estiver em "//Execute algo" caso o numero seja 1 ou 2. 


O mesmo ocorre com o 3, 4, 5, ou seja, como não temos nada especificado para estes valores, o comportamento será executar o que estiver em "// Execute isto" caso o numero seja 3, 4, 5 ou 6.